import esbuild from "esbuild";
import process from "process";
import builtins from "builtin-modules";
import { config } from "dotenv";
import { sassPlugin } from "esbuild-sass-plugin";

config();

const banner = `/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
`;

const prod = process.argv[2] === "production";

const dir = prod ? "./" : process.env.OUTDIR;

esbuild
    .build({
        banner: {
            js: banner
        },
        entryPoints: ["src/publish/publish.admonition.ts"],
        bundle: true,
        external: ["obsidian", "electron"],
        format: "cjs",
        watch: !prod,
        minify: prod,
        target: "es2020",
        logLevel: "info",
        sourcemap: !prod ? "inline" : false,
        treeShaking: true,
        outfile: "./publish/publish.admonition.txt",
        define: {
            ADMONITION_ICON_MAP: "ADMONITION_ICON_MAP"
        },
        tsconfig: "./src/publish/tsconfig.json",
        plugins: [sassPlugin()]
    })
    .catch(() => process.exit(1));
